<?php
/**
 *  * 系统-受国家计算机软件著作权保护 - !
 * =========================================================
 * Copy right 2018-2025 成都海之心科技有限公司, 保留所有权利。
 * ----------------------------------------------
 * 官方网址: http://www.ohyu.cn
 * 这不是一个自由软件！在未得到官方有效许可的前提下禁止对程序代码进行修改和使用。
 * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
 * =========================================================
 * User: ohyueo
 * Date: 2024/5/30
 * Time: 14:17
 */
namespace app\install\controller;
use think\facade\Db;
/**
 * 安装模块 - 生成API模块
 * Class Index
 * @package app\install\controller
 */
class GenerApi  extends ApiBase
{
    //初始化传值给prefix
    public function __construct($prefix,$oldprefix)
    {
        $this->prefix = $prefix;
        $this->oldprefix = $oldprefix;
    }
    //生成api里面的模型方法
    public function createapiModel()
    {
        //获取类名 第一个大写
        $prefix = ucfirst($this->prefix);
        //去掉下划线
        $className = str_replace('_','',$prefix);

        //旧的类名 第一个大写
        $oldprefix = ucfirst($this->oldprefix);
        //去掉下划线
        $oldclassName = str_replace('_','',$oldprefix);

        //将app/api/models/下面的oldclassName Browse.php改成 className browse.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'Browse.php';
        $newmodelPath = app_path().'../api/models/'.$className.'Browse.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'Browse',$className.'Browse',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName NotiList.php改成 className NotiList.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'NotiList.php';
        $newmodelPath = app_path().'../api/models/'.$className.'NotiList.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'NotiList',$className.'NotiList',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName ZongheImg.php改成 className ZongheImg.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'ZongheImg.php';
        $newmodelPath = app_path().'../api/models/'.$className.'ZongheImg.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'ZongheImg',$className.'ZongheImg',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName WebText.php改成 className WebText.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'WebText.php';
        $newmodelPath = app_path().'../api/models/'.$className.'WebText.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'WebText',$className.'WebText',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName UserToken.php改成 className UserToken.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'UserToken.php';
        $newmodelPath = app_path().'../api/models/'.$className.'UserToken.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'UserToken',$className.'UserToken',$content);
            //替换内容里面的oldclassName UserList 为 className UserList
            $content = str_replace($oldclassName.'UserList',$className.'UserList',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName UserList.php改成 className UserList.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'UserList.php';
        $newmodelPath = app_path().'../api/models/'.$className.'UserList.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'UserList',$className.'UserList',$content);
            //替换内容里面的oldclassName UserLogin 为 className UserLogin
            $content = str_replace($oldclassName.'UserLogin',$className.'UserLogin',$content);
            //替换内容里面的oldclassName UserInfo 为 className UserInfo
            $content = str_replace($oldclassName.'UserInfo',$className.'UserInfo',$content);
            //替换内容里面的oldclassName UserToken 为 className UserToken
            $content = str_replace($oldclassName.'UserToken',$className.'UserToken',$content);
            //替换内容里面的oldclassName UserIntegral 为 className UserIntegral
            $content = str_replace($oldclassName.'UserIntegral',$className.'UserIntegral',$content);
            //替换内容里面的oldclassName UserMoneylog 为 className UserMoneylog
            $content = str_replace($oldclassName.'UserMoneylog',$className.'UserMoneylog',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName UserInfo.php改成 className UserInfo.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'UserInfo.php';
        $newmodelPath = app_path().'../api/models/'.$className.'UserInfo.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'UserInfo',$className.'UserInfo',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName UserLogin.php改成 className UserLogin.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'UserLogin.php';
        $newmodelPath = app_path().'../api/models/'.$className.'UserLogin.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'UserLogin',$className.'UserLogin',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName SystemWork.php改成 className SystemWork.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'SystemWork.php';
        $newmodelPath = app_path().'../api/models/'.$className.'SystemWork.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'SystemWork',$className.'SystemWork',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName Speefiles.php改成 className Speefiles.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'Speefiles.php';
        $newmodelPath = app_path().'../api/models/'.$className.'Speefiles.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'Speefiles',$className.'Speefiles',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName PayPayorder.php改成 className PayPayorder.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'PayPayorder.php';
        $newmodelPath = app_path().'../api/models/'.$className.'PayPayorder.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'PayPayorder',$className.'PayPayorder',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName PayIncome.php改成 className PayIncome.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'PayIncome.php';
        $newmodelPath = app_path().'../api/models/'.$className.'PayIncome.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'PayIncome',$className.'PayIncome',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName PayRefund.php改成 className PayRefund.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'PayRefund.php';
        $newmodelPath = app_path().'../api/models/'.$className.'PayRefund.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'PayRefund',$className.'PayRefund',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName UserIntegral.php改成 className UserIntegral.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'UserIntegral.php';
        $newmodelPath = app_path().'../api/models/'.$className.'UserIntegral.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'UserIntegral',$className.'UserIntegral',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName UserMoneylog.php改成 className UserMoneylog.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'UserMoneylog.php';
        $newmodelPath = app_path().'../api/models/'.$className.'UserMoneylog.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'UserMoneylog',$className.'UserMoneylog',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName AccessToken.php改成 className AccessToken.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'AccessToken.php';
        $newmodelPath = app_path().'../api/models/'.$className.'AccessToken.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'AccessToken',$className.'AccessToken',$content);
            file_put_contents($newmodelPath,$content);
        }

        //将app/api/models/下面的oldclassName Message.php改成 className Message.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'Message.php';
        $newmodelPath = app_path().'../api/models/'.$className.'Message.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'Message',$className.'Message',$content);
            file_put_contents($newmodelPath,$content);
        }
        //将app/api/models/下面的oldclassName MessageText.php改成 className MessageText.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'MessageText.php';
        $newmodelPath = app_path().'../api/models/'.$className.'MessageText.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'MessageText',$className.'MessageText',$content);
            file_put_contents($newmodelPath,$content);
        }
        //将app/api/models/下面的oldclassName Sysmessage.php改成 className Sysmessage.php
        $oldmodelpath = app_path().'../api/models/'.$oldclassName.'Sysmessage.php';
        $newmodelPath = app_path().'../api/models/'.$className.'Sysmessage.php';
        //oldmodelpath文件存在则修改
        if(file_exists($oldmodelpath)){
            //修改文件名称
            rename($oldmodelpath,$newmodelPath);
            //将文件内容里面的类名修改
            $content = file_get_contents($newmodelPath);
            $content = str_replace($oldclassName.'Sysmessage',$className.'Sysmessage',$content);
            file_put_contents($newmodelPath,$content);
        }

    }

    //生成api里面的控制器方法
    public function createapiController()
    {
        //获取类名 第一个大写
        $prefix = ucfirst($this->prefix);
        //去掉下划线
        $className = str_replace('_','',$prefix);

        //旧的类名 第一个大写
        $oldprefix = ucfirst($this->oldprefix);
        //去掉下划线
        $oldclassName = str_replace('_','',$oldprefix);

        //将app/api/controller/下面的oldclassName Browse.php改成 className Browse.php
        $oldcontrollerpath = app_path().'../api/controller/Index.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'NotiList',$className.'NotiList',$content);
            $content = str_replace($oldclassName.'ZongheImg',$className.'ZongheImg',$content);
            $content = str_replace($oldclassName.'WebText',$className.'WebText',$content);
            file_put_contents($oldcontrollerpath,$content);
        }

        //将app/api/controller/下面的Login.php
        $oldcontrollerpath = app_path().'../api/controller/Login.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'UserLogin',$className.'UserLogin',$content);
            $content = str_replace($oldclassName.'UserList',$className.'UserList',$content);
            $content = str_replace($oldclassName.'UserInfo',$className.'UserInfo',$content);
            file_put_contents($oldcontrollerpath,$content);
        }

        //将app/api/controller/下面的Payco.php
        $oldcontrollerpath = app_path().'../api/controller/Payco.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'PayPayorder',$className.'PayPayorder',$content);
            $content = str_replace($oldclassName.'OrderOrderlist',$className.'OrderOrderlist',$content);
            file_put_contents($oldcontrollerpath,$content);
        }

        //将app/api/controller/下面的User.php
        $oldcontrollerpath = app_path().'../api/controller/User.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'UserMoneylog',$className.'UserMoneylog',$content);
            $content = str_replace($oldclassName.'UserIntegral',$className.'UserIntegral',$content);
            $content = str_replace($oldclassName.'PayPayorder',$className.'PayPayorder',$content);
            file_put_contents($oldcontrollerpath,$content);
        }

        //将app/api/controller/下面的Texter.php
        $oldcontrollerpath = app_path().'../api/controller/Texter.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'WebText',$className.'WebText',$content);
            $content = str_replace($oldclassName.'ZongheImg',$className.'ZongheImg',$content);
            file_put_contents($oldcontrollerpath,$content);
        }

        //将app/api/controller/下面的Wxlogin.php
        $oldcontrollerpath = app_path().'../api/controller/Wxlogin.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'UserLogin',$className.'UserLogin',$content);
            $content = str_replace($oldclassName.'UserList',$className.'UserList',$content);
            $content = str_replace($oldclassName.'UserInfo',$className.'UserInfo',$content);
            $content = str_replace($oldclassName.'AccessToken',$className.'AccessToken',$content);
            file_put_contents($oldcontrollerpath,$content);
        }
        //将app/api/controller/下面的Message.php
        $oldcontrollerpath = app_path().'../api/controller/Message.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'Message',$className.'Message',$content);
            $content = str_replace($oldclassName.'MessageText',$className.'MessageText',$content);
            $content = str_replace($oldclassName.'Sysmessage',$className.'Sysmessage',$content);
            file_put_contents($oldcontrollerpath,$content);
        }

    }

    //替换app/handler/下面的文件内容
    public function replaceHandler()
    {
        //获取类名 第一个大写
        $prefix = ucfirst($this->prefix);
        //去掉下划线
        $className = str_replace('_','',$prefix);

        //旧的类名 第一个大写
        $oldprefix = ucfirst($this->oldprefix);
        //去掉下划线
        $oldclassName = str_replace('_','',$oldprefix);

        //将app/handler/下面的AuthHandler.php
        $oldcontrollerpath = app_path().'../handler/AuthHandler.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'UserToken',$className.'UserToken',$content);
            $content = str_replace($oldclassName.'UserList',$className.'UserList',$content);
            file_put_contents($oldcontrollerpath,$content);
        }
        //将app/handler/下面的BrowseHandler.php
        $oldcontrollerpath = app_path().'../handler/BrowseHandler.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'Browse',$className.'Browse',$content);
            file_put_contents($oldcontrollerpath,$content);
        }
        //将app/handler/下面的WorkHandler.php
        $oldcontrollerpath = app_path().'../handler/WorkHandler.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'SystemWork',$className.'SystemWork',$content);
            file_put_contents($oldcontrollerpath,$content);
        }
        
        //将app/handler/下面的MoneyLogHandler.php
        $oldcontrollerpath = app_path().'../handler/MoneyLogHandler.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'UserList',$className.'UserList',$content);
            $content = str_replace($oldclassName.'PayIncome',$className.'PayIncome',$content);
            $content = str_replace($oldclassName.'PayRefund',$className.'PayRefund',$content);
            file_put_contents($oldcontrollerpath,$content);
        }

        //将app/handler/下面的MoneyLogHandler.php
        $oldcontrollerpath = app_path().'../handler/MoneyRefundHandler.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'UserList',$className.'UserList',$content);
            file_put_contents($oldcontrollerpath,$content);
        }
        
    }

    //替换app/listener/common/下面的文件内容
    public function replaceListener()
    {
        //获取类名 第一个大写
        $prefix = ucfirst($this->prefix);
        //去掉下划线
        $className = str_replace('_','',$prefix);

        //旧的类名 第一个大写
        $oldprefix = ucfirst($this->oldprefix);
        //去掉下划线
        $oldclassName = str_replace('_','',$oldprefix);

        //将app/listener/common/下面的SpeechListener.php
        $oldcontrollerpath = app_path().'../listener/common/SpeechListener.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'Speefiles',$className.'Speefiles',$content);
            file_put_contents($oldcontrollerpath,$content);
        }

        //将app/listener/common/下面的RegProvinceListener.php
        $oldcontrollerpath = app_path().'../listener/common/RegProvinceListener.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'MapRegprovince',$className.'MapRegprovince',$content);
            file_put_contents($oldcontrollerpath,$content);
        }
    }

    //替换app/validate/api/下面的文件内容
    public function replaceValidate()
    {
        //获取类名 第一个大写
        $prefix = ucfirst($this->prefix);
        //去掉下划线
        $className = str_replace('_','',$prefix);

        //旧的类名 第一个大写
        $oldprefix = ucfirst($this->oldprefix);
        //去掉下划线
        $oldclassName = str_replace('_','',$oldprefix);

        //将app/validate/api/下面的FindPasswordValidate.php
        $oldcontrollerpath = app_path().'../validate/api/loginin/FindPasswordValidate.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'UserLogin',$className.'UserLogin',$content);
            file_put_contents($oldcontrollerpath,$content);
        }

        //将app/validate/api/下面的VerifyPhoneValidate.php
        $oldcontrollerpath = app_path().'../validate/api/reg/VerifyPhoneValidate.php';
        //oldcontrollerpath文件存在则修改
        if(file_exists($oldcontrollerpath)){
            //将文件内容里面的类名修改
            $content = file_get_contents($oldcontrollerpath);
            $content = str_replace($oldclassName.'UserLogin',$className.'UserLogin',$content);
            file_put_contents($oldcontrollerpath,$content);
        }
    }
}